<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // var x = 10;
        // function fn() {
        //     console.log(x);//und
        //     var x = 20;
        // }
        // fn();
        // console.log(x);//10

        //EC(G)   n--10  fn--0x002  x--
        // n  fn--0x002 x
        // var n=10;
        // function fn(){
        //     //EC(fn)  n--20--21--22--23  f--0x003
        //     // n  f--0x003
        //     var n=20;
        //     function f(){
        //         //EC(f)   EC(fn)
        //         n++;
        //         console.log(n);//21  22  23
        //     }
        //     f();
        //     return f;//0x003
        // }
        // var x=fn();  //21
        // x();//0x003()  22
        // x();//0x003()  23
        // console.log(n); 10


        // var a=2;
        // function fn(){
        //    console.log(a);
        // }
        // fn();//2
        // function sum(){
        //     var a=3;
        //     fn();
        // }

        // sum();//2

        // var ary=[12,13];//0x002
        // function fn(ary){
        //     // ary--0x002  [12,13]--[100,13]
        //     //    ---0x003 [100]---[0]
        //     console.log(ary);//[12,13]
        //     ary[0]=100;
        //     ary=[100];
        //     ary[0]=0;
        //     console.log(ary);//[0]
        // }
        // fn(ary);
        // console.log(ary);//[100,13]

        // var a=12,b=13,c=14;//c--20
        // function fn(a){
        //     // EC(fn)  a--12--20  b--und--20
        //     // a--12
        //     // b
        //     console.log(a,b,c); // 12,und,14
        //     var b=c=a=20;
        //     console.log(a,b,c);//20 20 20
        // }
        // fn(a);
        // console.log(a,b,c);//12 13 20

        // let a=20,
        // b=10;
        // let fn=function(){
        //     console.log(a);//报错
        //     let a=b=30;
        //     console.log(a,b);
        // };
        // fn();
        // console.log(a,b)
     
        // console.log(fn)//函数体
        // function fn(){    
        //     console.log(1)
        // }
        // var fn=2;       
        // console.log(fn);//2


        //const 声明常量  跟let作用一样
        //const 必须声明+赋值
        //const 不能修改值
        // const a=10;
        // a=100;
        // console.log(a);
        
        // const a=3;
        // a=6;
        // console.log(a);//报错

        // var num;
        // console.log(num);//und
        // num = 1;
        // console.log(num);//1
        // num = 3;
        // console.log(num);//3

        // function fn(){
        //     console.log(1);
        // }
        // function fn(){
        //     console.log(2);   
        // }
        // function fn(){
        //     console.log(3);
        // }
        // function fn(){
        //     console.log(6);   
        // }
        // fn();//6
        // fn();//6
        // fn=100;//fn--函数(6)--100
        // fn();//100()  报错

        // //EC(G)    fn--0x002  f--0x003
        // //变量提升  fn--0x002  f
        // function fn(i){//0x002
        //     //EC(fn)  i--2--3--4   EC(fn)
        //     //形参赋值 i--2      形参赋值 i--6--7
        //     return function (n){//0x003  EC(fn)
        //         //EC()          EC() 
        //         //形参赋值 n--3  形参赋值 n--6
        //         //EC()         
        //         //形参赋值 n--4

        //         console.log(n+(++i));//3+3  6   6+7  4+4
        //     }
        // }
        // var f=fn(2);
        // f(3);//0x003(3)  6
        // fn(6)(6);//13
        // f(4)//8

        // var a=4;
        // function b(x,y,a){
        //     // x--1  y--2 a--3--10
        //     //[1,2,3]--[1,2,10]
        //     console.log(a);//3
        //     arguments[2]=10;
        //     console.log(a);//10
        // }
        // a=b(1,2,3);
        // console.log(a);//und

        var a=10,b=11,c=12;//c--3
        function text(a){
            //a--10--1  b--und--2
            a=1;
            var b=2;
            c=3;
        }
        text(10);
        console.log(a);//10
        console.log(b);//11
        console.log(c);//3
    </script>
</body>
</html>